[レポート] Configuring Amazon S3 security settings and access controls #STG309 #AWSreInvent

[レポート] Configuring Amazon S3 security settings and access controls #STG309 #AWSreInvent

S3 のセキュリティベストプラクティスをハンズオンで学べる workshop に参加してきました。ブロックパブリックアクセスや KMS キーによる暗号化やマルウェアスキャン機能の確認など、短時間で多くの S3 のセキュリティ機能を学習することができ、大満足の内容です。
Clock Icon2024.12.04

こんにちは! AWS 事業本部オペレーション部の平根です。
現在、re:Invent 2024 に現地参加しています。

https://reinvent.awsevents.com/

S3 のセキュリティの推奨設定について学べそうな「Configuring Amazon S3 security settings and access controls」というワークショップがありましたので参加してみました。

セッション概要

セッションタイトル
STG309 | Configuring Amazon S3 security settings and access controls

セッションの説明
※機械翻訳

Amazon S3は、事実上あらゆるワークロードに対応できるセキュリティ設定と詳細なアクセス制御を提供します。
このワークショップでは、Amazon S3のアクセス管理ツールを使用して、ニーズに合わせてアクセスを管理し、ユーザーベースおよびリソースベースのポリシーを大規模に定義する方法を学びます。
さらに、誰がどのデータにアクセスしているか、どこから、いつアクセスしているかを含めて、監視および監査する方法についても学びます。
異なるセキュリティ要件のシナリオを探索し、それらの要件を満たすためにさまざまなAmazon S3のツールと機能をどのように適用できるかについて実践的に学習します。
参加するにはラップトップを持参する必要があります。

スピーカー

  • Erick Dame
    • Sr. Solutions Architect, AWS
  • Christie Lee
    • Principal Solutions Architect, Amazon Web Services

Level
300 – Advanced

事前説明

初めに、S3 のセキュリティベストプラクティスについて以下の推奨事項の説明がありました。
IMG_2505
IMG_2506
IMG_2507
KMS による暗号化やレプリケーションの設定など、いずれもデータの機密性や可用性を向上させるために重要な設定です。

また、最近アップデートがあった S3 の機能についても説明がありました。
IMG_2510
S3 の Malware Protection 機能については今回の Workshop でも実施する内容となっています。

Workshopで実施した内容

以下が本 workshop で実施した演習項目となります。
※タイトルは機械翻訳

ラボ 1 - S3 のセキュリティ設定

S3 バケットポリシー、KMS キーによる暗号化、VPC エンドポイントを利用したアクセス制限により S3 を保護する方法を学びました。

  • HTTPS を要求する
    "aws:SecureTransport" 条件が false の場合にアクセスを拒否するバケットポリシーを作成し、HTTPS 接続を要求するように設定しました。
  • SSE-KMS 暗号化
    カスタマー管理キーを作成し、S3 の暗号化を SSE-KMS に設定しました。
    また、バケットポリシーに AWS KMS key を使用してバケット内のオブジェクトを KMS で暗号化することを要求するように設定しました。
  • S3 VPC エンドポイントへのアクセスを制限する
    S3 用の VPC エンドポイントを作成し、バケットポリシーで VPC 経由でのアクセスのみを許可するように設定をしました。
  • AWS Config ルールを使用してパブリックバケットを検出する
    AWS Comfig にて s3-bucket-public-read-prohibited ルールを設定し、S3 バケットがパブリック公開されている場合に検知可能なことを確認しました。
  • S3 用の Acces Analyzer を使用する
    Acces Analyzer により、パブリックアクセス可能となっている S3 を特定できることを確認しました。

ラボ 2 - S3 アクセス許可

S3 Access Grants を利用して S3 へのアクセスを管理・設定する方法を学びました。

  • S3 Access Grants Lab - 初期設定
    S3 Access Grants サービスがユーザーに代わって S3 へアクセス可能な認証情報を作成できるように IAM ロールの設定を行いました。
  • IAM ユーザーの S3 アクセス許可を設定する
    ユーザーがS3へアクセスするための一時的な認証情報をリクエストできるように IAM ポリシーを作成しました。
    また、S3 Access Grants にて、特定のユーザーに対して特定の S3 リソースへのアクセス権限を付与するように設定を行いました。

ラボ 3 - Guard Duty を使用して S3 のマルウェア保護を有効化する

  • S3 バケットに対するマルウェア保護を有効にする
    GuardDuty にて、特定の S3 にオブジェクトがアップロードされた際に自動的にマルウェアスキャンを行うように設定を行いました。
  • オブジェクトを使用してマルウェアスキャンをテストする
    また、マルウェアテストファイルを作成・アップロードし、マルウェアスキャンが適切に動作することを確認しました。

ラボ 4 - S3 アクセス制御リスト

ACL が使用されている S3 を保護する方法と、ACL での制御を無効化して IAM ポリシーやバケットポリシーへの制御へ移行するための方法について学びました。

  • パブリック ACL をブロックする
    デフォルトで無効となっている ACL を有効化し、バケットポリシーの条件句で "x-amz-acl" を利用してパブリックなアクセスを拒否するように設定しました。
  • S3 ブロックパブリックアクセスを構成する
    バケット設定のブロックパブリックアクセスにて "新しいアクセスコントロールリスト (ACL) を介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする" を有効化しました。
    上記の設定によって、パブリックにアクセス可能なオブジェクトのアップロードを試みると拒否されることを確認しました。
  • S3 ACL を無効にする
    前の手順で有効化した ACL を再び無効化し、新規および既存オブジェクトに対して ACL 経由で権限が付与されないように設定しました。

以上でセッションの時間がタイムオーバーとなり、以下の項目については実施することができませんでした。

  • S3 インベントリを利用して S3 アクセス制御を検索する
  • Amazon Athena を使用して CloudTrail ログをクエリし、ACL に依存する S3 リクエストを識別する
    Athena を利用して現在の S3 に設定してあるアクセス許可設定や利用状態を確認するような内容となっており、面白そうです。

ためになったこと

  • Guard Duty を使用た S3 のマルウェア保護設定の簡単さ
    2024 年に利用可能になった "S3 の Malware Protection" 機能は、以下のようにスキャン対象としたい S3 を指定するだけ(数クリック)で有効化することができ、非常に手軽だと感じました。
    スクリーンショット_2024-12-03_6_32_37

Workshop ではマルウェアテストファイルがアップロードされた際に即座に "THREATS_FOUND" タグが付与されたため、検知までに時間がかからなそうな点も魅力だと感じました。

  • ACL 無効化への変更について
    以下の "新しいアクセスコントロールリスト (ACL) を介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする" 設定を利用することで、既存のオブジェクトには影響を与えずに新規のオブジェクトのみ、設定を行える点は便利だと感じました。
    スクリーンショット_2024-12-03_6_46_35
    非推奨とされている ACL ですが、現在も ACL を利用している場合は上記機能を活用して段階的に ACL 無効化に向けた変更を検討できそうです。

最後に

以上、「Configuring Amazon S3 security settings and access controls」のレポートでした。
ハンズオンを通して、S3 の基本的なセキュリティベストプラクティスを学ぶことができる大変有意義な Workshop でした。
設定の手軽さなどは実際に手を動かして初めて実感できるものだと思いますので、興味がある方は是非試してみてください!

以上、平根でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.